const getMessage = (status) => {
  const codeMessage = {
    400: '请求有错误',
    401: '没有权限',
    403: '用户得到授权，但是访问是被禁止的。',
    404: '接口地址地址不存在',
    406: '请求的格式不可得。',
    410: '请求的资源被永久删除',
    422: '当创建一个对象时，发生一个验证错误。',
    500: '服务器发生错误',
    502: '网关错误',
    503: '服务不可用',
    504: '网络超时',
  };
  return codeMessage[status] || '请求失败'
}

/**
 * @param error {Error} 请求返回错误
 * @param Alert {Function} 提示函数
 * @param handleError {Function} 自定义错误处理
 * @param message {String} 后台返回错误信息
 */
function errorHandle({error, Alert, handleError = () => {}}) {
  const {status = '', config = {}, data = {}} = error.response || {} // 状态吗
  const msg = status ? (data.info || getMessage(status)) : '网络超时' // 提示信息
  if (msg) {
    Alert(`${status} ${config.url || ''}：\n ${msg}`)
  }
  handleError(status, msg, error) // 自定义错误处理
}

export default errorHandle
